package com.webserver.http;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 当前类用于定义那些在HTTP协议中的规定内容,以便进行复用
 */
public class HttpContext {
    /**
     * 回车符
     */
    public static final char CR = 13;
    /**
     * 换行符
     */
    public static final char LF = 10;
    /*
        MIME类型映射
        key:资源的后缀名.如:css,png,html等等
        value:该资源类型对应的MIME值.如:text/css,image/png,text/html等等
     */
    private static Map<String,String> mimeMapping = new HashMap<>();

    static {
        //初始化所有静态属性的地方
        initMimeMapping();//初始化MIME映射的
    }

    private static void initMimeMapping(){
        try {
            //java.io.Properties 该类用于读取并表示.properties文件内容
            Properties properties = new Properties();
            //读取与HttpContext在同一个目录下的名为web.properties的文件
            properties.load(
                 HttpContext.class.getResourceAsStream("web.properties")
            );
            properties.forEach((k,v)->mimeMapping.put(k.toString(),v.toString()));
            System.out.println(mimeMapping.size());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        System.out.println(getMimeType("mp3"));
    }


    /**
     * 根据资源后缀名获取对应的MIME值
     * @param ext   资源的后缀名,例如:css
     * @return      该资源对应的MIME值,例如:text/css
     */
    public static String getMimeType(String ext){
        return mimeMapping.get(ext);
    }

}














